<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue.js"></script>
</head>

<body>
    <div id="app1">
        <comp1></comp1>
    </div>
    <div id="app2">
        <comp2></comp2>
    </div>
    <div id="app3">
        <comp3></comp3>
    </div>

    <template id="temp1">
        <h3>这是使用template在外部定义的组件结构</h3>
    </template>
</body>
<script>
    // 1.1 使用Vue.extend来创建全局的Vue组件
    var comp1 = Vue.extend({
        template: '<h3>这是使用Vue.extend创建的组件</h3>'
    });
    // 1.2 使用Vue.component('组件的名称',创建出来的组件模板对象)
    Vue.component('comp1', comp1);
    // 1.3 创建Vue实例,得到ViewModel
    var vm = new Vue({
        el: '#app1'
    });

    // 2.1 组件模板只能有一个根元素
    // Vue.component('comp2', Vue.extend({template: '<h3>这是使用Vue.component创建的组件</h3><span>123</span>'})); 会报错
    // Vue.component('comp2', Vue.extend({ template: '<h3>这是使用Vue.component创建的组件</h3>' }));
    // Vue.component('comp2', { template: '<h3>这是使用Vue.component创建的组件</h3>' });// 这样比上面简单一点
    var login = {
        template: '<h3>这是使用Vue.component创建的组件</h3>'
    }
    Vue.component('comp2', login);// 可以通过定义对象来创建组件
    // 2.2
    var vm = new Vue({
        el: '#app2'
    });

    // 3.1
    Vue.component('comp3', Vue.extend({ template: '#temp1' }));
    // 3.2
    var vm = new Vue({
        el: '#app3'
    });

</script>

</html>